package com.sright.bcard.enterprise.share.service;

import com.sright.bcard.common.service.share.dto.enterprise.AllAvatarDTO;
import com.sright.bcard.common.service.share.dto.enterprise.AllMaterialDTO;
import com.sright.bcard.common.service.share.dto.page.BetweenDateParamRequest;
import com.sright.bcard.common.service.share.dto.page.PageParamRequest;
import com.sright.bcard.common.service.share.dto.pager.Pager;
import com.sright.bcard.common.service.share.dto.page.PageDTO;
import com.sright.bcard.common.service.share.dto.enterprise.MaterialDTO;
import com.sright.bcard.enterprise.share.response.MaterialResponse;
import com.sright.common.response.SrightResponse;

import java.util.List;

public interface MaterialService {

    Pager<AllMaterialDTO> pageList(Integer materialType,
                                   BetweenDateParamRequest betweenDateParamRequest,
                                   PageParamRequest request, Integer needReview);

    Pager<MaterialDTO > pageListOfCardUserInfo(Integer cardType, Integer checkStatus,
                                 BetweenDateParamRequest betweenDateParamRequest,
                                 PageParamRequest request);

    /**
     * 新增企业素材
     */
    SrightResponse<Long> addMaterial(MaterialDTO materialDTO);

    /**
     * 素材企业列表
     */
    SrightResponse<PageDTO<MaterialResponse>> list(MaterialDTO materialDTO);

    /**
     * 编辑企业素材
     */
    SrightResponse<Integer> editMaterial(MaterialDTO materialDTO);

    /**
     * 删除企业素材
     * @return
     */
    Integer deleteMaterial(Long id);

    /**
     * 获取个人素材列表
     * @return
     */
    SrightResponse<List<MaterialDTO>> personalMaterialList(MaterialDTO materialDTO);

    /**
     * 新增个人素材
     * @return
     */
    SrightResponse addPersonalMaterial(MaterialDTO materialDTO);

    /**
     * 编辑个人名片信息
     * @param ids
     * @param userId
     * @return
     */
    SrightResponse<Boolean> editPersonalMaterial(List<Long> ids,Long userId);

    /**
     * 删除个人素材
     * @param ids
     * @return
     */
    SrightResponse<Integer> deletePersonalMaterial(List<Long> ids);

    /**
     * 企业管理后台素材列表service方法
     * @param materialDTO
     * @return
     */
    SrightResponse page(MaterialDTO materialDTO);

    Pager<AllAvatarDTO> avatarList(PageParamRequest paramRequest, Integer needReview);

    void deleteAvatar(Long id);
}
